/*! \file InputLayout.h
 *	\brief <write description for InputLayout.h>
 *
 *	created:	2010/12/08
 *	created:	8:12:2010   15:46
 *	filename: 	C:\src\tactics-engine\libs\gd_dx11\InputLayout.h
 *	file path:	C:\src\tactics-engine\libs\gd_dx11
 *	file base:	InputLayout
 *	file ext:	h
 *	author:		Vitalii Trubchaninov
 *				vitalii.trubchaninov@ubisoft.com
 */

#ifndef _gd_dx11_INPUTLAYOUT_H_
#define _gd_dx11_INPUTLAYOUT_H_

#pragma once

#include <core/vector.h>

namespace tt{

namespace gd{
class InputLayoutDesc;
} //namespace gd

namespace gd_dx11{

typedef core::Vector<D3D11_INPUT_ELEMENT_DESC>::Type InputLayoutElements;

class InputLayout
{
public:
	InputLayout();

	bool Create(const gd::InputLayoutDesc&);

	const D3D11_INPUT_ELEMENT_DESC* data() const;
	UInt size() const;

private:
	UInt FormatSize(DXGI_FORMAT);

private:
	InputLayoutElements m_elements;
};

} //namespace gd_dx11
} //namespace tt

#endif //_gd_dx11_INPUTLAYOUT_H_